#pragma once

#include <hash_map>
#include <string>

#include "AnimatedActor.h"
#include "Animacion.h"
#include "EventListener.h"
#include "Mapa.h"
#include "Sonido.h"

using namespace std;

#define MS_POR_TILE 300.f


enum direcciones{
	IZQUIERDA,
	DERECHA,
	ARRIBA,
	ABAJO
	};

class Player : public AnimatedActor, public EventListener
	{
	private:

		string spawn;
		
		Mapa *mapa;
		Path *ruta;
		Sonido *click;

		float destinoRatonX;
		float destinoRatonY;

		void comprobarTeclas();
	public:
		Player(ID id,Mapa *m);

		virtual void update(float speedFactor);
		virtual void render();		
		virtual bool onEvent(Event *e);

		void moverDestino(int dirx, int diry,bool enTile = false);
		void seguirPath();
		void moverRaton(int x, int y);

		void setAnimacion(int dirx, int diry);
		~Player(void);
	};